package dados;

import negocios.Contato;
import negocios.Endereco;
import negocios.Funcionario;
import negocios.excecoes.GestockException;

public class RepositorioFuncionario implements IRepositorioFuncionario {

	private static RepositorioFuncionario instancia = null;

	public static RepositorioFuncionario getInstancia() {

		if (instancia == null) {
			instancia = new RepositorioFuncionario();
		}

		return instancia;

	}

	public void cadastrarFuncionario(Funcionario funcionario, Contato contato,
			Endereco endereco) throws GestockException {

		try {
			ConexaoBDFuncionario conecta = new ConexaoBDFuncionario();
			conecta.cadastrarFuncionario(funcionario, contato, endereco);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public Funcionario consultarFuncionario(String idFuncionario)
			throws GestockException {
		Funcionario funcionario = null;
		try {
			ConexaoBDFuncionario conecta = new ConexaoBDFuncionario();
			funcionario = conecta.consultarFuncionario(idFuncionario);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return funcionario;
	}

	public Object[][] listarFuncionarios(String nome) throws GestockException {
		Object[][] funcionarios = null;
		try {
			ConexaoBDFuncionario conecta = new ConexaoBDFuncionario();
			funcionarios = conecta.listarFuncionarios(nome);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return funcionarios;
	}

	public void alterarFuncionario(Funcionario funcionario)
			throws GestockException {
		try {
			ConexaoBDFuncionario conecta = new ConexaoBDFuncionario();
			conecta.alterarFuncionario(funcionario);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

	}

}
